package com.gem.day08.interfaces;

/**
 * 本类用来演示Java接口
 * 关键字:interface
 * 
 * 接口特点:
 * 1.接口中所有的属性都必须是公开静态的属性(常量)[不推荐]
 * 2.接口中所有的方法都必须是抽象方法
 * 3.接口中可以有默认实现的方法(JDK8.0+)
 * 4.接口中不能有普通属性,构造,普通方法,所以接口不能被实例化,
 * 	  它天生是用来被实现("继承")的
 * 5.接口可以实现多重继承,一个接口可以在同时继承多个接口,
 * 	  一个类可以同时实现多个接口
 * 6.一个类实现了接口,则必须重写该接口中所有的抽象方法包括接口从其他接口中继承的方法,
 * 		除非这个类是抽象类
 * 		
 * 	  注意:
 * 	  类和类是继承(extends),接口和接口是继承(extends),类和接口是实现(implements)
 * 
 * 注意:
 * 1.接口中的常量属性可以省略修饰符
 * 2.接口中的方法可以省略修饰符
 * 
 * @author easonsy
 * 2020年7月27日 下午2:47:16
 */
public interface Movable
//extends IA, IB
{

	//public static final int EAST = 1;
	int EAST = 1;
	int WEST = 2;
	int NORTH = 3;
	int SOUTH = 4;

	//public abstract void move();
	void move();

	//JDK8.0提供默认实现方法
	default void method() {
		System.out.println("接口默认实现方法");
	}
}
